<!--
 * @Author: 周艳凯 484894717@qq.com
 * @Date: 2025-03-17 15:32:58
 * @LastEditors: 周艳凯 484894717@qq.com
 * @LastEditTime: 2025-04-11 20:58:51
 * @FilePath: \BusStopBoard.Webd:\360MoveData\Users\75041\Desktop\uniapp框架\my-project\src\App.vue
 * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
-->
<!--
 * @Author: 周艳凯 484894717@qq.com
 * @Date: 2025-03-17 15:32:58
 * @LastEditors: 周艳凯 484894717@qq.com
 * @LastEditTime: 2025-03-30 23:13:25
 * @FilePath: \BusStopBoard.Webd:\360MoveData\Users\75041\Desktop\uniapp框架\my-project\src\App.vue
 * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
-->
<script>
import { getVersion } from '@/api/common/user/user';
export default {
	data() {
		return {
			oldversion: '',//当前版本号
		}
	},
	onLaunch: function () {
		console.log('App Launch')
		// #ifdef APP-PLUS
		this.autoCheckUpdate()
		this.plusInit()
		// #endif
		// #ifdef H5
		this.plusInit()
		// #endif
	},
	onShow: function () {
		console.log('App Show')
	},
	onHide: function () {
		console.log('App Hide')
	},
	methods: {
		plusInit() {
            // #ifdef APP-PLUS
            // 隐藏顶部电池,时间等信息
            plus.navigator.setFullscreen(true);
            //隐藏虚拟按键
            plus.navigator.hideSystemNavigation();
            plus.android.importClass('android.provider.Settings');
            const context = plus.android.runtimeMainActivity().getApplicationContext();
            // 这是安卓id
            const androidId = plus.android.invoke(
                'android.provider.Settings$Secure',
                'getString',
                context.getContentResolver(),
                'android_id',
            );
            console.log('Android ID:', androidId);
            this.$store.commit('SET_ANDROID_ID',androidId);
            // #endif
            // #ifdef H5
            this.$store.commit('SET_ANDROID_ID', 'c5627ee779e21522');
			console.log('我设则sdn了')
            // #endif
        },
		autoCheckUpdate() {
			plus.runtime.getProperty(plus.runtime.appid, (widgetInfo) => {
				console.log(widgetInfo, '我是当前版本号')
				this.oldversion = widgetInfo.version //检测app版本
			});
			this.updateApp()
			const THIRTY_MINUTES = 30 * 60 * 1000 // 更易读的时间单位
			setInterval(() => {
				console.log('我是否触发了循环')
				this.updateApp()
			}, THIRTY_MINUTES)
		},
		updateApp() {
			getVersion().then(res => {
				const newversion = res.data.result		
				if (newversion != this.oldversion) {
					this.downloadApp()
				}
			})
		},
		downloadApp() {
			plus.nativeUI.showWaiting('正在更新版本');　　//等待框开启
			uni.downloadFile({
				// process.env.VUE_APP_API_URL
				url: this.$store.state.apiUrl + '/api/electronic/downloadFile',
				success: (downloadResult) => {
					if (downloadResult.statusCode === 200) {
						plus.nativeUI.showWaiting('安装文件...');
						plus.runtime.install(downloadResult.tempFilePath, {
							force: true  //true表示强制安装，不进行版本号的校验；false则需要版本号校验，如果将要安装应用的版本号不高于现有应用的版本号则终止安装，并返回安装失败。 仅安装wgt和wgtu时生效，默认值 false。
						}, function () {
							console.log('install success...');
							plus.nativeUI.showWaiting('安装成功等待重启')
							setTimeout(() => {
								plus.nativeUI.closeWaiting();
								plus.runtime.restart();  // 重启APP
							}, 2000);			
						}, function (e) {
							console.error('install fail...');
						});
					}
				},
				fail: (err) => {
					console.error('下载失败:', err, 'http://10.254.61.113:5000' + '/api/electronic/downloadFile'); // 添加错误日志
					uni.showToast({
						title: '下载失败: ' + 'http://10.254.61.113:5000' + '/api/electronic/downloadFile',
						icon: 'none',
						duration: 2000
					});
				},
				complete: () => {
					plus.nativeUI.closeWaiting();
				}
			})
		}
	}
}
</script>


<style lang="scss">
// @import "uview-ui/index.scss";
@import './style/main.css';

</style>